home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 43
/
Aminet 43 (2001)(GTI - Schatztruhe)[!][Jun 2001].iso
/
Aminet
/
comm
/
tcp
/
Amster-main.lha
/
Amster_Install
/
Rexx
/
Whois_Triton.rexx
< prev
Wrap
OS/2 REXX Batch file
|
2000-09-09
|
10KB
|
297 lines
/*
** Amster User Search Demo
** $VER: Whois.rexx 0.3 (09.9.2000)
**
** By Roger Clark (kaedric@texas.net)
** September 9, 2000
**
** This script requires the rexxreqtools.library which can be found on Aminet.
** util/rexx/RexxReqTools.lha
**
** This script requires the tritonrexx.library which can be found on Aminet.
** util/rexx/TritonRexx376.lha
**
** This script requires the triton.library which can be found on Aminet.
** dev/gui/tri20b1usr.lha
**
*/
Options Results
Parse Arg Username
Signal On Break_C
Signal On halt
Signal On ioerr
Signal On syntax
If ~show(L,"rexxreqtools.library") Then Do
If ~addlib("rexxreqtools.library",0,-30,0) Then Do
Say "Could not access the rexxreqtools.library!"
Exit 20
End
End
If ~Show('L','tritonrexx.library') Then Do
If ~addlib('tritonrexx.library',10,-30,0) Then Do
Say 'Could not access the tritonrexx.library!'
Exit 10
End
End
X = 1
Y = 1
LUser. = ""
Speed = 11
OnlineTime = ""
Link.0 = "Unknown"
Link.1 = "14.4K Modem"
Link.2 = "28.8K Modem"
Link.3 = "33.6K Modem"
Link.4 = "56K Modem"
Link.5 = "ISDN 64K"
Link.6 = "ISDN 128K"
Link.7 = "Cable"
Link.8 = "DSL"
Link.9 = "T1"
Link.10 = "T3+"
Link.11 = ""
windowtags = WindowID(1),
WindowTitle('Amster WhoIs'),
BeginMenu('Project'),
MenuItem('W_Whois?',1),
MenuItem('?_About',2),
MenuItem('Q_Quit',3),
'HorizGroupAC',
'VertGroupA',
'Space',
'BeginLine',
'Space',
Text3('Nick '),
'Space',
ClippedTextBoxMW(LUser.Nick,4,30),
'Space',
Text3('Level'),
'Space',
ClippedTextBoxMW(LUser.Level,5,11),
'Space',
'EndLine',
'Space',
'BeginLine',
'Space',
Text3('Time '),
'Space',
ClippedTextBoxMW(OnlineTime,6,11),
'Space',
Text3(' Status'),
'Space',
ClippedTextBoxMW(LUser.Status,7,27),
'Space',
'EndLine',
'Space',
'BeginLine',
'Space',
Text3('Channels'),
'Space',
ClippedTextBoxMW(LUser.Channels,8,50),
'Space',
'EndLine',
'Space',
'BeginLine',
'Space',
Text3('Shares '),
'Space',
ClippedTextBoxMW(LUser.Shares,9,6),
'Space',
Text3(' Downloads'),
'Space',
ClippedTextBoxMW(LUser.Downloads,10,6),
'Space',
Text3(' Uploads'),
'Space',
ClippedTextBoxMW(LUser.Uploads,11,6),
'Space',
'EndLine',
'Space',
'BeginLine',
'Space',
Text3('Speed '),
'Space',
ClippedTextBoxMW(Link.Speed,12,11),
'Space',
Text3(' Client'),
'Space',
ClippedTextBoxMW(LUser.Client,13,27),
'Space',
'EndLine',
'Space',
'BeginLine',
'Space',
Button('Whois?',14),
'Space',
Button('Next Server',15),
'Space',
Button('Quit',16),
'Space',
'EndLine',
'Space',
'EndGroup',
'EndGroup',
'EndProject'
app = TR_CREATEAPP('TRCA_Name AmsterWhoIs')
If app ~= '00000000'x Then Do
window = TR_OPENPROJECT(app,windowtags)
If window ~= '00000000'x Then Do
Done = 0
Call ReadServers
Do While Done ~= 1
Call TR_WAIT(app,'')
Do While TR_HANDLEMSG(app,'event')
If event.trm_class = 'TRMS_ACTION' Then Do
Select
When event.trm_id = 1 | event.trm_id = 14 Then Do
Username = ""
Call Whois
End
When event.trm_id = 2 Then Do
Call rtezrequest("Whois.rexx v0.3"||D2C(10)||"By: Roger Clark (kaedric@texas.net)"||D2C(10)||"Date: September 9, 2000","Thanks","About Whois.rexx")
End
When event.trm_id = 3 | event.trm_id = 16 Then Do
Done = 1
End
When event.trm_id = 15 Then Do
Call ChangeServers
End
Otherwise NOP
End
End
If event.trm_class = 'TRMS_CLOSEWINDOW' Then Do
Done = 1
End
End
End
Call TR_CLOSEPROJECT(window)
End
Call TR_DELETEAPP(app)
End
Exit
ChangeServers:
Call TR_SETATTRIBUTE(window,4,'TRAT_TEXT',Username)
Call TR_SETATTRIBUTE(window,5,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,6,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,7,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,8,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,9,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,10,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,11,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,12,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,13,'TRAT_TEXT','')
If Y = 0 Then Do
Address 'AMSTER.1' 'CONNECT'
End
Else Do
Address 'AMSTER.1' 'CONNECT SERVER 'IPAddress.Y' PORT 'PortNumber.Y
Y = Y + 1
If Y > X then Y = 1
End
Address 'AMSTER.1' 'ISONLINE'
Do While RC = 0
Call Delay(50)
Address 'AMSTER.1' 'ISONLINE'
End
Whois:
If Username = "" Then Do
Username = rtgetstring("","Enter user name to search for.","Whois.rexx")
If Username = "" Then Return
End
Address 'AMSTER.1' 'WHOIS 'Username' LUSER'
If RC = 0 Then Do
Speed = LUSER.LINK
Hours = LUSER.TIME % 3600
Minutes = (LUSER.TIME % 60) - (Hours * 60)
Seconds = LUSER.TIME - (Hours * 3600) - (Minutes * 60)
OnlineTime = Hours":"Right("00"||Minutes,2)":"Right("00"||Seconds,2)
Call TR_SETATTRIBUTE(window,4,'TRAT_TEXT',Luser.Nick)
Call TR_SETATTRIBUTE(window,5,'TRAT_TEXT',Luser.Level)
Call TR_SETATTRIBUTE(window,6,'TRAT_TEXT',OnlineTime)
Call TR_SETATTRIBUTE(window,7,'TRAT_TEXT',Luser.Status)
Call TR_SETATTRIBUTE(window,8,'TRAT_TEXT',Luser.Channels)
Call TR_SETATTRIBUTE(window,9,'TRAT_TEXT',Luser.Shares)
Call TR_SETATTRIBUTE(window,10,'TRAT_TEXT',Luser.Downloads)
Call TR_SETATTRIBUTE(window,11,'TRAT_TEXT',Luser.Uploads)
Call TR_SETATTRIBUTE(window,12,'TRAT_TEXT',Link.Speed)
Call TR_SETATTRIBUTE(window,13,'TRAT_TEXT',Luser.Client)
Return
End
Else If RC = 1 Then Do
Logoff = Date('N',LUSER.LASTSEEN % (60*60*24), 'I')
ElapSec = ((LUSER.LASTSEEN / (60*60*24)) - (LUSER.LASTSEEN % (60*60*24))) * 60 * 60 * 24 % 1
Hours = ElapSec % 3600
Minutes = (ElapSec % 60) - (Hours * 60)
Seconds = ElapSec - (Hours * 3600) - (Minutes * 60)
OfflineTime = Hours":"Right("00"||Minutes,2)":"Right("00"||Seconds,2)
Call TR_SETATTRIBUTE(window,4,'TRAT_TEXT',Luser.Nick)
Call TR_SETATTRIBUTE(window,5,'TRAT_TEXT',Luser.Level)
Call TR_SETATTRIBUTE(window,6,'TRAT_TEXT',OfflineTime)
Call TR_SETATTRIBUTE(window,7,'TRAT_TEXT','Last seen on 'Logoff)
Call TR_SETATTRIBUTE(window,8,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,9,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,10,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,11,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,12,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,13,'TRAT_TEXT','')
Return
End
Else Do
Call TR_SETATTRIBUTE(window,4,'TRAT_TEXT',Username)
Call TR_SETATTRIBUTE(window,5,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,6,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,7,'TRAT_TEXT','Unknown User!')
Call TR_SETATTRIBUTE(window,8,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,9,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,10,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,11,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,12,'TRAT_TEXT','')
Call TR_SETATTRIBUTE(window,13,'TRAT_TEXT','')
Return
End
Return
ReadServers:
Dir = Pragma("D")
Servers = "Amster.servers"
If ~Exists(Servers) Then Do
Servers = rtfilerequest(Dir,Servers,"Select Server List",,,)
If Servers = "" Then Do
X = 0
Y = 0
Return
End
End
Call Open(In,Servers,"R")
X = 1
Do Until EOF(In)
ServerData = ReadLn(In)
IPAddress.X = Word(ServerData,1)
PortNumber.X = Word(ServerData,2)
X = X + 1
End
X = X - 1
Call Close(In)
Return
break_c:
halt:
ioerr:
syntax:
Call rtezrequest('Notify the author about this!'||D2C(10)||'+++ Error' rc 'in line' sigl '-' ERRORTEXT(rc),'Oops!','Error!')
If app ~= '00000000'x THEN
Call TR_DELETEAPP(app)
Exit